home *** CD-ROM | disk | FTP | other *** search
- From: wht@n4hgf.uucp (Warren Tucker)
- Newsgroups: comp.sources.misc
- Subject: v16i055: ECU async comm package rev 3.0, Part31/35
- Message-ID: <1991Jan6.054034.28972@sparky.IMD.Sterling.COM>
- Date: 6 Jan 91 05:40:34 GMT
- Approved: kent@sparky.imd.sterling.com
- X-Checksum-Snefru: ac68f828 f49acfaf 5991e514 2ece4e93
-
- Submitted-by: wht@n4hgf.uucp (Warren Tucker)
- Posting-number: Volume 16, Issue 55
- Archive-name: ecu3/part31
-
- ---- Cut Here and feed the following to sh ----
- #!/bin/sh
- # This is part 31 of ecu3
- if touch 2>&1 | fgrep 'amc' > /dev/null
- then TOUCH=touch
- else TOUCH=true
- fi
- # ============= ckermit/ckermit.03 ==============
- if test ! -d 'ckermit'; then
- echo 'x - creating directory ckermit'
- mkdir 'ckermit'
- fi
- echo 'x - extracting ckermit/ckermit.03 (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'ckermit/ckermit.03' &&
- X#!/bin/sh
- X# this is ckermit.03 (part 3 of ckermit-4E-X286)
- X# do not concatenate these parts, unpack them in order with /bin/sh
- X# file ckermit continued
- X#
- Xif test ! -r _shar_seq_.tmp; then
- X echo 'Please unpack part 1 first!'
- X exit 1
- Xfi
- X(read Scheck
- X if test "$Scheck" != 3; then
- X echo Please unpack part "$Scheck" next!
- X exit 1
- X else
- X exit 0
- X fi
- X) < _shar_seq_.tmp || exit 1
- Xif test ! -f _shar_wnt_.tmp; then
- X echo 'x - still skipping ckermit'
- Xelse
- Xecho 'x - continuing file ckermit'
- Xsed 's/^X//' << 'SHAR_EOF' >> '_shar_tmp_.tmp' &&
- XXMFS/FB7%\+=DL@4G[G"R?]5K#0=OM8=)*PUO\6CR_W27>U=&E1FP,EBP=8B]M
- XXM<-'$C0*\I=STVZOK^1<VK=WMP1\:YQ`00=_Y==.Y2YB>7#Y.4`1I7+Y]W!ZK
- XXMZBA#!-]G(-\L"SDN"SD9ZP2NY*<+1Q&I31$_ZZ<2#9,["=R0,Z4BTLEKF],,
- XXMOJX9G0<($09X,#ICD#;9S+:O#0!,0+_L(M4D'1E6_2$+H2]:;;WHW16]^<CW
- XXM;<C"RRXJ!.-TH!;G:V/86Q/%,R-=0HT+X1^Y+`=LT$X@4`=U,`9<(P),X`+S
- XXM)`+L&RYI,!&0'`3L=KP*\>++DA!U:CRQ_&'E"<]N/<5<UY@H^ZI;H.<=VUA=
- XXM``)6.^@SOAQ:,:M^3@>]%N>272'[LQ6[8BDH:C^-M!%S\$+E=<HI2F-5K39`
- XXM(:,`@-:!L>C#$=@5KDI5LHO\^EICT-MLU+AN8-=48,BO&C.$FJFU"Y]J\9D0
- XXM"@)%\`1>#*U6=A'A@A0M0`9(N16#41A+X.JO6F]B<!-K8-=,\%HAE#-J4>NZ
- XXMW$BL^QAX4$YB`!)^(.P7WL0`DL?7+NO3A,3*5`:-Z@=)B\X/!+@@X`>>/>]`
- XXMX0>S>P(_<`+YKC-"FQ7KZP=;H:*.F^]U9KI+#@!A0!E6-M7]>?`?7>]OL`45
- XXM_P9P^C!;,3-W`A%+66_HKA5V'03#H:\*X2&1H19<[N7_3&/\JD:#61]^:DOQ
- XXMW(R4(^Y;`2*U5>K3!!)69O)^,`;[#`#CF>7FJ<X),1HAOUQA/1/OF.B0'1E$
- XXM.4T'TQYJWBW?8DKZ:2(LH!936[7U#@/$#)O5J09BEA'+8RT309=+2]\M#%^7
- XXMD8VYK,_M8=B/G>AJD:<C_1=S[M7^<09HD!"X:*)>\>DE;Q>SM?)P0)<%46U#
- XXMY&XM]$(?)H^V7KN-R5A_41,W;LBZC><)@*K'TP*)#J:-)?I;3P=;@#!P6NA)
- XXM?2_Q0_5R+OF5$O7GJ2"2-AQAH2_Q@]Y$>YM:[Y@7(C$8;02H?44GL+U1M@5S
- XXMO3Y=4-?M05]*D\-C*]6$;YD>8IX'DM0*P-UKM!P_.UL]^T2-9#E>H3/U)NJ\
- XXM9N"%G1LP:JD%`2#+7V<;H1;D#Q@S;,@H8*$4P<Y&Y"&[.R7G6!4Z'FDUP3M8
- XXMHO>MM"M("9]R4!=_H0!*<XY5H>.15A.\@R6FOBL:@2#5?_AW05#$7QL=`=>Y
- XXM"ADQ``+*#QDRT/QV+9$Q0)(@0>Q.H3/GND)`)M[7;M`JT&N6H0#\[OP@8-BQ
- XXM=*[)>/]@_3HR0)(@T4CX"JU-;`::WDJ[<D@QD-@*`/.\HQ4[H!&Y\3HRD-A<
- XXML=CK^SHQD-C&DQ&\@R5V<2D>34H)DVTKB["5&6[F"<R:3`=&_Q=0\9@@_2XC
- XXMG_5'#9];4<2^>(Y5,<>4"];L8FJZ[1C^W/[PN17<'^33W08),^NS^C9K;8F:
- XXM/QSX:C\BP3P;,5N[F3:^S[,^"[238]20H1:@O2OI7N2S"E]WL-:66!-%5+OX
- XXMNKP;4<J:#@*[.3$3D29J@=:*;MU=LBOIWAY(P,N)+2&[^12BR<)./UL',2+N
- XXM8RX``MJ[$D([D/<%?0(0G6O]+NSFJDV*[J>[^10.B=$IK)0;<]TGP5[/!5Z4
- XXM'AGXJO&>UB$=)\<B"Q0Q`!0RD.P@,`.0G,*1$0.)?2B!D:Z?OG`V:5SLB,B>
- XXMUB'+)>LC.APR,/$SH&MC0),@`1<RH19I<P:6X?ONA2[`\<N(7)Y!#/AGDF/3
- XXM1!-V/:&8"A'<'^33O=[9/AF5$?<T/!PR,/$S@-&YMD.M%.D$K1Y`<0?*A!%G
- XXMT-,;4<KZ/.,GT-F]UNX%@MKY;-`7D6,GXN]T$<3ON"M!-+:=3?L7D6,GDO?-
- XXM<0(\.SFZW6OF`N`@/@?^8=,[8-`L$T(/T6N[$D1;CL2<7>%JP3(AE"`@$:M_
- XXML6-5\5H+`M8L4[D[SJI#WQ<C2NH%@MKY;-!LZ^]A[?WO>!$YUM^)76;D>258
- XXMZ4,Z,XAJL4I":^$U,01K;`371I[9PC()C5\[8-!@JTQYT&N[$D3+VQRQ=!$Y
- XXMUM^0;%FS"K;*E`=%O16&ELIW(CS2W27K3<Q@JTQNVQ%A,/0G<`?*A!%G0.H&
- XXM71"]!LTGL"5FX.\%@MKYG"9F8-=`#-9;8@9`@;[^KR\=21>GJ!9=H16H2XVG
- XXMI.'ZTI%U3NOP2DIV#<1@K;D%4@:LU-ET<8K51?_SIC/%@[[^KR\=21?,@<2=
- XXM3?LPRA&[4D%:_[KZ0MC0>`*X;,JD7B"HG<\&71#^SDFV]O]SW+M8(MV83^GW
- XXMLA&EG`=1H1:3HVY;D>0^I#.&KC/L8G`):]=HG1"XK,M;8@:DON5_L6-,81EJ
- XXM(3-UH2_.`^(:@U_V(]F-4DZ;#W"?Q1(6.?3[8<C'S^D2L=:6J/G#@:_D7A/.
- XXMPSHH^F8!(CY=7F*E7BIJ<=D@P/U]K>Z'KA#315Z8NA,@T4CUQOTV`2(881](
- XXMKA46^Q*5&6[8#Y];867OZ<W!C!!&_Q=0\9@@_2ZR7M#'S^G4V._/D^T^U,)(
- XXM]O&[^12B>=D&?M'W7=`G`-&7C;D-'6>OI19'#9]*K=NI/3G!@R;U-D.^Y2W*
- XXME.,&;M!X4-<$,P2XA8A7`#'H,D#>1&12RZ>[J2E1W1QJ>P)CD/YL#<?<W,*;
- XXM329&C8\`,$``DHNICB6VABX):QM+>ROR"Q46@TRE3*A)YDU$5IZ;C8\`@$RE
- XXMK.EL],+LC\J66!.^;,@AY!_ZW?6RNF,0P2[#3-CCYKH;XL\PROU!/MV$:S@9
- XXM@RXE"6WT>]'[@=>6S>E[[:5]#:T;G1#D31>(CR;"B]L#)1#JPZUCN6_2`P7*
- XXMY$HA!`!)8"DOU,+#7#PPJK9JG_6K.N]LM*F2IK)8<@(A<`)!@TRE#!+`K,D)
- XXML9L3,Q'EB=:*;MU=LBO7O@,^LE&/]W6OG"!&X;,H*(-U=8ALYUM^Y7?S8
- XXMR,)./UOO:<C0[:6'#&%H#@#(5,INNQ$18VN3SB[`K,D)D2WNTR@]K61#!DX`
- XXM@$RE#!(8SA8:/@8<CB9D3:R+[#P@KC$I3064&QG<;^"/XL^F[J&'9-?<;^`F
- XXM:>L*`)_K34U>,1S$[A0ZTQ>46P9K;8E&O.765"H,Z48.(3S98B&SM90!H^&;
- XXMDC`3*B&[^12BF0>XRXV`A@)/D`(BH`*MH`*NH`+;H`)%L`*?L`)-P`)%T`+N
- XXMT`+OT`(%X`)*X`*%X`*QX`+48+4OD`8O$`LO0`\O8`,PX`<P<`PP\``Q4`4Q
- XXMP`DQP`LQ\`TQ8`(R<`(RL`NQ,0,Y,`,30`.70`/=0`,C4`-H4`.44`.54`/=
- XXM4`,G8`-S8`.+8`.,L%,V\`\V0`0W\`8W0`LWP`\W,`,XT`<X4`PXH``Y<`4Y
- XXMP`DY0`TY4`TYT`$Z@`8Z,`LZH`\Z8`,[X`2I?B:Y\1?45NIFYA0GH5:6H>,G
- XXMI"_ZGQ"F%@8JBR7HO]:6>#``0`2ZJR\G<+(F<@)PO6/?TFN[$D0Y?F6(;$IF
- XXML_9"_1!FT&N[$D2WA9;2W25%H2X3H1'!+Q8ZLS[,41\)`\=C\!8`$@3)G`1)
- XXM``*[.3'QN17+V?")1L]Z_-_H<@(G:R+^7B"HG<^A@0,*@`).7>QLT`)<L*Y4
- XXMF<)*F1M@(18MAA`=`A'%TTCX:M=#P!Q%._.SFKEN\`*9BQ6]%F\G8"`!4]<`
- XXM8""UD2`@D;EN\`*9BQ4)`\=C\!8`$@3)G`1)``*[.3'QN15+;S^RJO&1V[FY
- XXM.V.-P;B3J4P6"0"X54?:A%QV[3NUD2!Z&[FEHTWT@;S*N)`>-[4``,?NX]6D
- XXM5)X\Z[-`.SF,VQRR:M>^4QL)`A*B",EV3VNY!J.,JTOPB5FXQ9Z-#0+<KQ;G
- XXM6!61P2XG$&V]EK`[8-"YIM9T<8ILE&O<;S^7?<C9`LF:-/JTU^>LC90K@3
- XXM3Y/FF;!M<.Q.C"5HF6O%(V1K=):C:(DU(22R6O).(;,:W\(%E#98DBT2T;'5
- XXM2[56.SGUIDUY,!&.?,C9T@8ID#"SCI9%5+OX:C]WX!2UH]2*1L0)<M'[T1RR
- XXM:IX)^Z+-(;\>+Q=`H?]5EA`)VP;'[L184KU4ZP*NKDUY,!&/")\KDFM"JTI`
- XXM;NDO9)[R^\26B.P3#[$)`A(G:R()D\)*F1L):QLL++\Y:Q^7W6)/O4Z2:M=.
- XXML&OE5#P',2(V*?65:1M%!`"-5,3E5#SR"Q'ZBB8G4$!I@R79(A$F@L/^G+!M
- XXM8-=-4))W3`=9_A)[<14D1C$UD;#KO>5(?`+:E`<3T6N2O6!((>L%C=8)D;"V
- XXMT>_";J[:5!$T?"FYD;#K3?N73AF6`6?A?EMH*=U=T@8)`P7*E+?V(ZO_C2XA
- XXMY!_ZW6)/O4[8&&_.`^(:HQ6#HBWVSQ76"12TO`9N@^_$;"`!8]>^4QL)`A(&
- XXM$C`)HVF.'O/Z4ME!/!S2W26$6R"HG<\=U>Z@-U[2MB09*MXQ:1;C^1J3DG
- XXM76\SY%O>HDS6C5TGH5:6$1GDCRZ3D1<NYK-`.SE/*Y/EQ,+6JQ7Z'10@\;0R
- XXM.08T>>::KS-D3:R"&NJYIM;J;_6M4^>H[&*=L[0\$=HSK1H_<;4Q\!-76P,_
- XXM`0(SH+5`80-:"Q18J[5`$0,XH+5`(0,TH+69@0-:"Q0Y8`-:FS!3T,1F`!*@
- XXMO2O7KO$!TN$+Y]V#DFUDT`)/8`8M``77G1`H$`3)G`1)``*[.3%E\(A0<-UT
- XXMT`+5OBDO@P(QH+5B#\T[;V$```4T@4&PBDFVLT8Y@#70O/./"`4TT0)#0,]Z
- XXM#*M!D,Q)D`0@L)L34P86EM%W<ADM\`1FT`)0<-T)@0)!D,Q)D`0@L)L34P:/
- XXM&&]4$%!H@@(Y@#5_06V74G".8F$,G_4R.08T>>8UL?O9,@9O`2"ZB%\),P5-
- XXM;`8@`=J[<NT:+](=OG#>/2C91@8M\`1FT`)0<-T)@0)!D,Q)D`0@L)L34P:/
- XXM"`7730<M4.V;\C(HD+5:2\P[;V$```4T@4&PBDFVLT8Y@#70O/./"`4TT0)#
- XXM0,]Z#*M!D,Q)D`0@L)L34P86EM%W<ADM\`1FT`)0<-T)@0)!D,Q)D`0@L)L3
- XXM4P:/&&]4$%!H@@(Y@#5_06V74G".8F$,G_4R.08T>>8UL?O9,@9O`2"ZB%\)
- XXM,Z$2LIM/(9IY@+O<2)4D'S&7#0+<W]?FA%N(:!<E#S$HI&1#!DX)0_(1<]D@
- XXMP/U]O;R$W,T3Z4HUX:VLFC`D'S&7#0+<W]?V(]GN`VY"QDXN++-U;LB"?4C?
- XXMFC`D'S&7#0+<W]?V(Q%9_]C+`1PX5K08DA"2[3[9<M$9_?`&;C^6S>E4OF()
- XXMQRYV<2D>3=%>4@<HJ@!W(2Z`G]><OM=>VM<)0_("9\B7#0+<W]?V(Q%9_]C!
- XXMLR[!GT(1HS)BEC`D+W"&?-D@P/U];3\T;)Z"?4C?&FX@H&Y;D>0^%.L`0/("
- XXM9\B7#0+<W]?V@V1GAFMK_B6:[]_07#SUG]O%/T0*$#QH`J,R.08T>>8U(:MR
- XXMD#"ZDY7TH2]Y@+O<2)4^S>``0.&[4IZQC2ZM_6CO+;P`0.&[4I[=2[]2QM\+
- XXM+KP`0.&[4I[\';3T*V4@OCD,#@`4OBMUGM-!2[]2MI@D`_SE%-+9LA`-T1'0
- XXM[(KSDCDM2[XU?D;'9-O-"P(U;A_B@9@L((I`D1<NYK-`^S1?J4RN=.V*P@3O
- XXM$B&BZ#;J$141\B9`D;`1`@#11AN<+A%'><C9T@;'[L1:$2&'"0)"8!<S[28!
- XXML=/*E+<1`@#:4C</%A"T[$<J(V8`8"`?%Q_/R9E'F;LSUN*ZP;EF`!0`L&/?
- XXM`A0``!9B$2$`D+EN\`*9BQ4`8"`?AS*;*[G:A%P1XGCS8B`!HQ;X[1_Z;4H]
- XXMF\LE%B'W.2T7`HV:MF"=!@7*Y$K7'B'M<4&FJC[%6DK4^T&7VQ7\,N1!0\54
- XXM$%`]$B'"6@(Q$`-D4`(Y$!`JD!9?21,8%"'"6@(Q$`-D4`(YL);+*@3L%3%#
- XXM`%X14@(V$)Y0\(]#0,]ZK`,E$`,Q0`8ED`-KN:QP//<1,JPE8`/A"077G1!3
- XXM<">7$2$E$`,Q0`8ED`-KN:Q-P.(@H#YF/A$14@(V$)Y0<-T)D6V%TQXE$`,Q
- XXM0`8ED`-KN:PX<!<M(`1*DV!JY1IP70)C<`)I\977G1#5OBEWH0,E$`,Q$!`J
- XXMH!J.AP-KB0(Y0`-!(ZSLJC[J`1P)IE:N$2$&70)C<`)I`0+5OBDOPP1O(3IN
- XXM$@,Q0`8ED`/SPL]D`MJ[<NTT+9$@0.&1'B'M01)ND&,GXG@M@+5[PC(AE&PE
- XXMT`)8RSWM`<>WC2XU?D:F*I4`8"`?1\42&:(C&B&/"@!@JTQ%5@(M@+5[PK:.
- XXMUP)8RSWM`077G1`U?D;+"@`&\G%4+)$@0%^.*RBZ\48ET`)8NR=;DITET`)8
- XXMRSWMH37U7>-G-*P`8"`?1\42*4`;4<JN"4=8X7@M@+5[\D8ET`)8RSWWG=/8
- XXM6.-GU!X`8"`?]]H2"0)"D`?4.`5IH`?N[B8!`10NJ6AE&1D2*4`;41D+46(1
- XXM`@#(M37&04#I"BH(?3I'"0(N&?U+Q)9IX6!VK,@9`>)"-#FCNIX=&2$E0%[K
- XXM>2L=/[9+G]T14@+DM9X\Z[-`.SE/RRX@$"$E0%[KR;,^"[23\[1H$B$E0%[K
- XXM24T-G_ENL2NT&R'W^1=CL)YJE15-$V4HP;0V$=JF&B$E0%[KJ58U>>9&!!*T
- XXM'2$E0%YN4@+KV;VD.;T$&R'WF>"!\8CWN5B*/&]RVUW/!5Z.O.69WQX1\HJ+
- XXM0Y:8CXVT&R$`D`<3`0);4`)C$*<`8"#KB0,O,RT)T>VN@2["&B$`D`<3`0);
- XXM4`)C$*<`8"`S3C#L6Q-+Z64/2T7TK,?9/:SL47$^"[23\[3LXAP:ZV(^"[23
- XXM\[1H,FX+]YXY/40V@H_L<2L=/[9+G]W.47$^"[23\[3LTAZFZ6(^"[23\[1H
- XXMXARFE,MPD/ENL2NP^A?4AJW.84I8L4[/BA),:Q.A+:SLH58U>>9&!!+NK15F
- XXM30>MVA[BH3+*-)P=$0;LH3(+H0?.X1;^@1#L(2#_Z!S6C8RSQ1Y_T6G.83AT
- XXMP`:SZQRF)`:SVQ[L8=MQ8)<[:B+!RAXR1`>SZQPV82%VR1[ZV/!UD"EPX,QU
- XXMP!YS<`?.7`?L<0<+H0>OI#+*-)P=$0;L(4,+H0?.81-L`1?.`3-<1A.*`S-<
- XXM1A-W9$J=UAZF20=L,+O.H1"S^ZCL8=NSVQ[L8=MQ8)<[:B+!RAXR1`>SZQPV
- XXM82%V:9H-O_L[:A?9S1[ZV/!UD"EPX,QUP!YS<`?.7`?L<0<+H0>OI!HRM!!Z
- XXM4+TE<SS9"P`Q``"]HEL[]BT`P+G9B<NF#`"=;10C"@!WH$P849BAOR5T>]T5
- XXMP5N=2IJ=`C)DL##TK,>[01,8-#UW<ADML"5T>]T5P1:[TB,`8"`?E[EN\`*9
- XXMBQ4`<"7?,A`6LYP`T+D`8"`?E[E8`0"9NR(7D6,G`@`L$T+)!K;*5&1L"P#:
- XXM4C>T[$<&\G$/%A`J(V9PA!5PM"(IM$(`@%Q;`P#A+A$+H0=@@C"6-:NYUEB]
- XXM!LUH7=;.ZA6+#CD201.0G,(US,O&4V6C3LPG`-&YAOQE4-20;AF1<=J0G$(K
- XXM1&E=/9&NE-&PIK<>1B30QFRY]K0`$`,"40,`X`2I?B:Y\1?4-AQ7\K$Z?B>7
- XXM@2ZXFE@`@`590`16'`014F0[]BW'-),U$\W)G`1)\)_QN17+V?")1L]Z+!`2
- XXM:=U=LBLA1!)ND&,G`@#,P4K@'3+-`QF=;136:Q0%O93^DQK.$^Y4G@9Z$!DH
- XXM,!K0C`-!\Y.HS!Q%._.1,1KQA@-J\0,@DNCEY#R@O2LAI!:9ZP8OD+E8(1`&
- XXM\G'&H60F8A0%O90)2[A)YDTP,Q,2;B`?9R`?5V#<[P,`H&G3W0:X9N!![N@`
- XXM$`,P``!-P.)O426OGC83`9#6C5T5$>X2L1!Z`"8`D!KA+A$+H0?QB5E)H]\M
- XXM]M3K-$3SB,K,4;0S'QFC$6\XH!90H$RNM+(L?!`=OG#>#0!0H$RNM+(LW",=
- XXMOG#>+1`QH%MP/`9O`2!!D,Q)D`3_&9];86HAY!_TBBLY``,`T`0L_A954B:[
- XXM6)Y+[]SUQEOC5C+'$Q6=2IHOX]UL%,L(-R\Q``!P/`9O`2!!D,Q)D`3_&9];
- XXMP5NH>B=QO_0```.^(A8DV3K6;9WSK$SU_"C0?!`=OG#>#0`P``!P/`9O`2!!
- XXMD,Q)D`3_&9]*W>$+!S(UL?0`4`,`X)(A9&ILL2OKHFV[F10*,`7J<6/63L1V
- XXMZ@9&WT@>Q](*I_7S"B!"JQ990&OAGQ!H#5OOTFM7\K&18>EU@"YG.1Q%K!9"
- XXML+0\$=H:CY-ALAB73AF6`6=/*Y,8.B^B&"'WB1),JQ83RLBUC"YY@+O<"`#"
- XXM(`5))Q#$(`5+)Q#&(`5')Q#((`7CT0Q2D'0"(0U2<'0"H0U2,![@(`5))Q#E
- XXM(`5+)Q!"UPY20'0"L0]2P(`"D0!3,(0"<0%3$(0"\0%3\(,"\0)30'<"$1XW
- XXM,`7CP0-3D'0"L73(#'0"H013X(`"T013<'<"$053<*54,`7G<'0`D`53,(0"
- XXMX053\(,"`71B,`5))Q!L,`7C00=3D'0"L0=3,!Z`H#7B40A34!0"H0A3,!Z/
- XXM\&KB,0E34%H`0'29,`7CT0E3D'0"`0I3,!ZH,`5))Q"M,`7C\48I\UIZ1(RO
- XXM)D)ZZR::S_-2S^)O424(.:%A'03)G`1)T&((T2$0\3B(Z(J=J3[<>B]*-F1B
- XXM2TH`@`5:,`170`018A24VY1D<CS#P;KM2#%&SR['S^G4.`:]<0(^.@>]X1C^
- XXM?">5FT!0$#]S`*$1$B9?&3]ST.M+>=E)YDU$1L50$#]S`*$1PAX@8RD0*AX4
- XXMOBOE>=F']*W+2\A@0MK<>B]*-F1B:]1D(I-C0),_F]IO5!Z5N&\+Q\*7W?)%
- XXM0=K<VI37"AK%,VPF$6XYCMXFD=)YT:(=FNPYGF3>1&2ME$GBH3[<VI1D(I-C
- XXM0),_F]IO1-K<&AFRNA7V2LP%E#:3;O"*`P"ZDY7TH2]Y@+O<F)!CU,0UF=J3
- XXMLZ=UH&3S(@=2DA[DT0,^X!Q`,05IH`?N[B;HR!Y;\`1+H"2JL04IY$QDH"2J
- XXML04FP2\D%!5*DM%EA"X`X$%M+A.`L9E"@D3YBOA*BR)W(IG#X4%2&2$E@([E
- XXM(8H14@+HZ$%M+A.`L9E"@D3YBOA*6Q-O(`9J@+(>-!XIO#;_!JNB"*XO;?/A
- XXM/BB?;`3FU$G4=$A`X<EJS,928#^2M7#`K,D)P5MYH<9L+`3FU$G4I+0?B<9J
- XXMS,9JSL(8+IG#(1.5<1D1HAH641"%0A9JGC5W(IG#(1.5<1F*XCPT'"$``+;*
- XXM5&1LBT>YD^HI#63B?>U>V5W/!5Z+0Y:8/T2J@0-W`:K=+1/>_CY>(`3PF#^>
- XXMA"Y"H(^S119&`(_YXTGH(I&ZX052`(_JTUCHHAI;D`0-81E1$>@`0`1%(`15
- XXM<`0Q[^.JPVZ;,J-N.09JT0.O"`!$4`1"4`5'$/,^KCKLMBEJL06B&*>45@1"
- XXM4`5'$/,^KCKLMBEJL06BJ".O"`!$4`1"4`5'$/,^KCKLMBDSV@.O"`!$4`1"
- XXM4`5'$/,^KCKLMBDSN@6B&*<`0`1%(`15<`0Q[^.JPVZ;,J-;((HZ\HK$^)V]
- XXMJ?'MJ/'(W;R;Z8KS(I(M4./V(3[H(ESLMBDSZB;D!9%N0EYJ(9(M4./V(3[H
- XXM(ESLMBEJL06B&*<"(9(M4./V(3[H(ESLMBEJL06B&.@E0%YJ(9(M4./V(3[H
- XXM(ESLMBDS&B$E0%YJ(9(M4./V(3[H(ESLMBDS"I$BV0(U;A_B@R["Q6Z;,J/Q
- XXM&"$E0%X(^9V]J?'MJ/$1(;R;Z8KDI1@=YI(AU!1>+6%3DP./*`,Y0!JF06`"
- XXM@0=C:@<"$>$*XZD+!ZILM*D,XJYT@?AH@JK_ZJ_$7*T``"(BHF2/Z8S/9:=N
- XXM8/2-A*]A;7`)*Q`B\`46T:(LTS2Z+[*CV*(LTS2Z+[*E91$MRC)-H_LB.XHM
- XXMRC)-H_LB.XHMRC)-H_LBNR?Q\9R0?0:!FA%6$1@Y:Q]AH+)8@JH*\Q*6_O^`
- XXM`:\LC*H*,]//4X^M8ZM[$A_/"3.NT;A*F1N<7>$33ZN+KC.H.CTGI"^Z&D+^
- XXMH=\%LI`RTXP6T:(LTS2Z+[)[$A_/"=EG$*@9816!D;/V$08JBR75^A*6_O^`
- XXM`:\L7*T`$!_/"=EG$*@9816!D;/V$08JBR7N^A*6CBZD%-;N"@#Q\9R0?0:!
- XXMFA%6$1@Y:Q]AH+)8TJDDL6@^"[23\[39XCY>34HP8^GO@RW:\@);+1#1!@#Q
- XXM\9R0?0:!FA%6$1@Y6YC^<8WZ@A),"P`@<NF481EPAA),:Q.A#0#Q\9R0?0:!
- XXMFA%6$1@Y6YC^<8TQ39J=LAB73AF6`6?=2YJ=XM,,#@#Q\9R0?0:!FA%6$1@Y
- XXM6YC^<8WZ@K<?`0#Q\9S6/8U%%A_/"=EG$*@(0=#,<M!\O=!%O14VC!C\W!$/
- XXM$2%&.3\=/RB)D9'<6`2?QHL`L'LZ%^Z(-*0K31)/O4X#T1O&X<3&H61#!DX`
- XXML#[,`0"G!&RA8RUV\UH`8,,`(+P`P*<583'(7S&<+A'3,SUN;B'3DU@<-SVO
- XXM)5YCH3)B-CUWPA8:/@9[<B?(!0`HP;0`T%UKL##@91S49,K&,1F@"P"AOR5T
- XXM>]T5L9P-7P8+0\]Z#`#^`Q9BL3`%4>Q)@5MUI$W(!0#HN\UR#`!"^Q*5V0;'
- XXM[L0IS5N=2IJ=`C)DL##TK,>[01,8M!O*E+?--MFTH<CS1ANO!4[3DU@RR2`8
- XXM?ADML"5T>]T5$4+^H=]&$5`],A"]81R$#"9"QDX`8,,`P!P444-B9A0C"@!G
- XXM9ARVW;RRO1O7?2'3H^!O!.)"]#2[H4RN=.T`D&/]O2?0[:4^$"V@@M"GPR*A
- XXMLR&/Y@((?3HL$CH;\F@`$$NALR&/!@"K(`:2)Q"M(`8J`'RO(`;C,0MB('BU
- XXM(`9+)Q"[(`9')Q##(`9$)Q#'(`8H(![,(`85*!#6(`97N@UB,($"`0YB`($"
- XXM<0YBX(`"L0YBP(`"`0]B\(,"00]BX(0"D0]B<())MP]B<((",0!CD(<"H0!C
- XXMH'=)QP!C0%E".`9Z)Q`8,`9T)Q`?,`:;"``C4&?B@0)CL'L"X0)CT'P"D0-C
- XXMP'X"H7<^,`9WEW1#,`9))Q!/,`9')Q!5,`9")Q!<,`9$EW1J,`;A(1![,`9`
- XXM)Q"`,`9A(Q"-,`97>@EC,($"(0ICT&H"<0ICL(D`0`MCP(!))PQC,(1)!PUC
- XXM$(1)APUC<(0"\0UCH(0"80YU)A[N,`9Y*!#T,`:2)Q#Y,`9W)Q#_,`8_F'0/
- XXM0`:[)Q`80`9TEW1.F$Y))Q`D0`9+)Q`K0`9')Q`U0`9")Q`Z0`9$)Q`_0`:M
- XXM)A!%0`8_*!!*0`9!*!`5Z`0N(1!80`9))Q!@0`9+)Q!H0`9')Q!"Q[3C`0AD
- XXMD'0"(8HLH)(I'!DK#,TV3#`AY!_Z[;XB1$+]1C!T$-#4E!>6".6JPV[ZPL(F
- XXMH17Z33E2FM)Y88E2D1Z=JBW49#C3V9H`P/T&[FD=HM1*JQ(L`;F&ELH]QOT&
- XXM[FD=(@>A6;G.$T+^0:^/3&FVW;P@4./V,031Y!*9T[+D6^/V,031%!!O(V>(
- XXMH1990&O:%&7%@]:P]2XX3"(4<:4"$9C[DQL\N\K,1N&[4IX&)V3LE.PEFC:3
- XXM;O"*`\3?O^;F%$UAD@6T%OY1C=?>_X[/&R9P?-OH$M)W$#\_QC]J\0-0<-VP
- XXM1;]T$3\_QC]J\0-:4]\A?0?Q\V/\HQ8BF=-!2[]T$3\_QC\(F9_`7TXAG2T+
- XXMT1`=`<VN2%X$XP2ICB7%TTCR^TD),T#>1&0O$)--7).I_489^99-$-II`R#%
- XXMTTCKPQP,HA990&O:%&7%@]:P]2XX3"(4<:5ID06TIDU15CQH#5OO@L,D0A$$
- XXM0^&[4IZ7?4C?FNPEFC:3;O`K<B>5ZSS',QRLVXX48_3L$M>O=0)&0;EE4*VX
- XXM*P,+)[1&0;E-22;',QRLVXX48_3L$M>O=0*JH3[<VI1D(I-C0),_F]H%$2$"
- XXM0>&[4IZ7?4C?"CYZJ5A%Y$G9NYXU+B0004K0&FD:D1"\HQ41(A`U+B1,D3NN
- XXMI%A%Y$G9JQ8V7<;^`"`<3`43S"&R990&OA[Q=-;`8@L1S`@9;%TTC"^R6=
- XXM&9C[DQM'KC-)_N;B0>&[LN78NQ7>_XZX&FE)#!G)[LE2`)=;4B?Y,::]H@!9
- XXM0&O:%&7%@]:P]2XX3"(403#JPZV1P?U];>!AD@6T%OY^T<1F0*@&KO%YS>E4
- XXMKA46^TO7"AJXFE@_H.8QV<0UF=J3@Y9[6@=*UID7%"'G*A`4OBODKOD)H:\9
- XXM?4+I"3\S+1!0H$RN%$)AD@6T%OY^T<1F0*C6W26[LK*X^EH$H[9JG_7#7#R&
- XXMELH2$2U@6RUXT0*?LC"[H4RN=.T"H0#WM5R22M,J"9$0>9`0&8\:;Y3QJ/%&
- XXM"9$'>9#0.*%![./0PQQW@#!J(9*4VY0[&3`(!^6JDXU;D^4$`]U>:N!2]@-J
- XXM'I--7).I/3EHN:=UH&3S4HS'F(P%LI`R8_/L,LQYY$IJ83'`5#]1;B03*B&[
- XXM^12BR8U.#=6>;(DUP<*#"!16(&$P$`.?<;58HS5<@P->\WIM\&HBI+<@\-CA
- XXMGQ!H#5OO@L,D0A%J\6HBI+<@\-CAGQ!H[1?J$14X3"(4H1990'"F]&]`)MXK
- XXMBY:Z$P3)G`1)P)EJ\6HBI+<>1B2;1)5.#=7H<A<CQ)Y06Q-OX@*)L1^&O)P-
- XXMGVCTK,>)'8^P^B8IX`*)L1\%#:/+V?")1L]Z7/MB`>X@H<S%HZT!QP*)`4<Z
- XXM]M(V'^X@@(FXZD-<`9\;;ZA/XP*)H5A:4]_"^R50WARBZ`(ID!@9#6MZZV%$
- XXM0FUV@8T7X493$D+^H=]J\6HBI+>>?&G49A?8R+,^"[23([1J,6TW08V?*='I
- XXMJO%^M`5"$-S`4>-"`A%3L&(T%J>(H0!D]JI+#P!;(`3!#1PU+B00,04K1F-Q
- XXMBA@*4(F+YK-`^S1)ID(%`=6ZD1ADIJU+CQ@*H,S#-&B_7!!0S=MD.RB)T1YB
- XXMCP)ZH!5O`!JX^O!4\BV(0=Q"0.XU46_+;AB(0=Q(8#^X=0:3,?'$A,0G*[*(
- XXM0=Q3H/&'(IE[DACML<+0;,.(0<7+V?")1L]Z'!%UX=6X"MB&O)P-GVCTK,<N
- XXMD!B)43262`8^(!!?\`:`\`:<\`:R\`;7\`;H\`;W\`8S``>?7`(,<P(E,`8G
- XXMH!:)@1AJD1A.#=7E=!<CI!MNHQ[EA#)`<9_3<B%'J1O:4C</%A`J(V8OH4Q^
- XXM9-W36&1`(;RX73S'Y,2>;(G(GH@RX`(PT%\Y`!HR@#622&!"(`90``=4,!>K
- XXMD04.(`4.*!X.D&\G((HGX(`>$P!+)QY4Z3%))QZBR'T]<`4`L'3B(8J[IW,-
- XXMX(#L1P0.."A4((H.R`(`$`14X(#B$014($#QZ("(X8`^``!KX("#(HH.N`1^
- XXM5``.J`(`0`0.^`-2Z8#D(8H.R`(`$`14,`4RX!,QX(!/L`0.*!!!0`540`2B
- XXMZ(`ZUP`-X(#L)Q`\L`2BV``^<)2(X8!#0`13``(^(!X\D&]-((H-X`/E(8H.
- XXM."$W,`-:.Q#](<=^=!$$H97'T1GNRC#'$0-:"_II`SO'D;4P`/II`SM"5A%R
- XXMMCQWPK,`H$UY`#L/DC:HE1(/L9LCPC`@(FIBL2*VEMX'LN$M(`-8&P8`4/X2
- XXMD12A-FHK0@4!U2,`X)(A-$(6`@`.EBU%X9)VX<1IH`=@@@MP<(3:T*/A``?(
- XXM``#I``?J``?K``?L``?(``!W5P]PT&KWT*/Z``?[``?\``?]T*.;&`>M)@!Q
- XXM(!`$$`<%$`<&$`<'$`<"T7@+$`>MY@!Q(!`0$`<1$`<2$`<3$`?LL81Q<'09
- XXM$`?T$``<$`<>$`<A$`<C$`<"P7VPO'0J$`<"X0)Q\`)Q``-Q$`-Q(!"]H@-Q
- XXM(!`[$`<L$``^$`=`$`=#$`=%$`<"P7U)$`=$QP1QT"M/$`=1$`=4$`=6$`<"
- XXMT7A:$`<"L05Q(!!<$`==$`=>$`=?$`<"T7AC$`=+UT("X09V%0=S$`=T$`<"
- XXM<81\$`=$I^\L$`""$`>$$`>%$`>&$`<"P7V-$`=+]PAQ<(22$`>8$`>9$`>:
- XXM$`<"T7BC$`<"00IQ(!"E$`>F$`>G$`>H$`<"X04B)`>&(`>:(`>N(`?"(`?6
- XXM(`?J(`?^(`<2,`<F,--SX`1SP`IQX(`"00MQD'0"T0MQ`($"40QQL'0"T0QQ
- XXM<'0"H0UQ('0"<0YQ,![N$`=$)Q#Z$`?A$4-`)Q`'(`<5*!`2(`=A(Q`:(`=7
- XXMJ@)R,($"P8`Q(`<Y(`=!(`=+(`=10$.O)D)Z"P*/'?X)@=8)D;!M@,,D0A%J
- XXM\6HBI+<@\-CAGQ!H#5OO@L,D0A%J\6HBI+<@\-CAGQ!H[1?J$14X3"(4H1:O
- XXM)D)ZZV%$LDE4.4"\Z>-H,$+L";4U\2:HOD?QZ`*)L1^&S!:[@B8LK&AEB2Z_
- XXMG"")[28H4MJEXP*)L1\%#:,FP2\D!&3BO;+#U$G49)[RF[-5FQ@9#6MZZ\F7
- XXMAEOV,1E!`1)"JQ:O)D)ZZ\F71FUV@8T\Z[-`.SE".Z,24S_>/R6X108YFT'T
- XXM(Q,ND!@`H(XG2[XQ`V[ZNOGT9C/7#.4!Y0*)`0`#Q)O(JVTC9"&/G!CC!!DU
- XXM@0+-)P(IX`*)X6.Z$SILP9MZ(/65V08ND!@`H(Y.#=5#!``.$`0`X`!5<+4.
- XXM:,UW8EP!$:7O!`#-5!!0S2!%\&GC4RJ0LR#CTQSR"Q&W\G%3H!Y1,2CE`P),
- XXMD`0##@#D$^!.,.!IG!<"3N!4``#DX\E!(`52D`1%(`5$?QA"4`53D`4`0#X@
- XXM(`5)X`1'0/1.``),D`0#'CM!D`1,4`3Y-@1!P`1,0/1.P`1),."[)P15,`59
- XXM``!$4!CY!@6_,N``D`1.D`14D`1!0`5)X`1'``!"4`53D`5Y$01,P`0@8`1!
- XXMD`1,4`25IA=9KVAE^<@'D!@1Y.;97(G[%AA`H8@N``/]]1D@,`/1W+P;!@"V
- XXM8`>MENCHPO>R#R9VLY!*@P)8O]^1#QB-$C3(?V.1#QB-$B&=%?$881\F?P8'
- XXMT@)*0Q#9,CTGQ&V1#QA>/6[`#@![\.M4T`<`L.R&`0![L.R&T0<1!&MZ"P*/
- XXM'?X)@=:P]2XX3"(4H1:O)D)Z"P*/'?X)@=9^H1Y1@<,D0A%J\6HBI+<>1B2;
- XXM1)5%\.VI++-MKN2W-4+L";4U\28ND!@9[>;9+#Z"$H^)D=%NGLWB(RBZ\6HB
- XXMI+>>?&G49A?8R+,^"[23([1J,05NGLV7_BJ6LF-LX`*)$4%NGLV7_BJ6LF-L
- XXMD#"O)D)ZV^9*+DN)$4%NGLW!1A8EP#`E<$=3<"?>]00Y!A9B<:6(2[TH@`(H
- XXM@`+V;:I(``$0``$0``$0``$0``$0``$0``$0``&$0`B$0`B$0`B$0`B$0`@0
- XXM``$0``$0``$0$`B!$`B!$`B!$``!$``!$``!$``!$``!$``!$``!$``!$``!
- XXM$``!``$0``$0``$0(`B"(`B"(`B"(``"(``"(``"(``"(``"(``"(``"(``"
- XXM(``"(``"``$0``$0X!R!$SB!$SB!$SB!$SB!$SB!$SB!$SB!$SB!$S@`0`NM
- XXM8`JS4!Y)5QX"$`#.$`L"X0RQ8`!+%SB!$SB!$SB!$SB!$SB!$SB!$SB!$SB!
- XXM$SB!$SB!$SB!$SB!$SB!$SB!$SB!$SB!$SB!$SB!$SB!$SB!$SB!$SB!$SB!
- XXM$SB!$SB!$SB!$SB!$SB!$SB!$SB!$SB!$SB!$SB"L`?C80VQ$#B!$SB!$SB!
- XXM$SB!$SB!$SB!$SB!$SB!4Q[8HBTOL-4"(7EZ)WF-)WF-)WF2UWB2UWB2%S@`
- XXM<`1-0`6!\ZB!<P1-0`7L"@`JP`<TP`>!$SB!`P##<``/T&MZ!P!@(!X@H'?1
- XXMDG0`@`L'(`P'``)Z!P!CP1YZ%RU)!P"W<`"W<``@H'<`P$&JH7?1DG0`8`L'
- XXM8`L'``)Z!P!$%W(@H'<`T`1)!P"O<`"U<``@H'<`,!;LH7?1DG0`0`2Z[&`Z
- XXMH[4@H+4ZH+4ZH+57FP-:JQ93`"(.Y@94\$)7$!6S7@?]G`93T!$``&!&8-M-
- XXMH$Q!,&Q-8,I*`")*X"U!T+Q:`P=/8"*^8P=PC#J!%CCD83&\`6-N(&IBH3-L
- XXM8S$1LB2!$SB!$SB!$SCBL3#2%2U@6RW7DBW;$CBJ(1"&M0*J`0`P@+4S0`,Z
- XXM=0,XD`-&-01$4`1&```P@+4S0`,Z=0,XD`/!,P;$"0`PP)4P\&<H@/5L0%GV
- XXM/:P"H;5:J[5:J[5:J[5:J[5:VUG1PNHO`#*6TAOD83%!,`54``!!0`14,&Y3
- XXM0`7C1@14D!=30`5Y0014``!-,`54``!-0`14``!0,`54``!00`14``!*,`54
- XXM``!'T`14```KH#``<`1-0`5N*2DE``,RX!+P```"X`<&X`<L$``*X`<.X`=H
- XXM$``2X`<6X`>D$``:X`<>X`?@$``BX`<FX`?DT`\JX`?CX0)^(!`A-QX+(UW1
- XXM`K;5@A=%\&E;`0,`,*%<06HIK8Z7_H[.`\U"QDX`H(Z7_HZ272E[XI(A-$(6
- XXM<F,KEG!"\BT`D`0O\`2>UB'C`SU=/EO9XCY>#<TT00:8#P!!<*8N'-6JPVZ;
- XXM,F[?7F>Z#1QL8S%"\(]YE.HIK8YS<HR:#`#J"!>1W2&50M\`,*'L&Q>`WV+0
- XXM`@76V-_96)`!(03_2!-D@/D`(`3L%3'9XCY>O:=UH&0!`<?NX]56\4ZX,R6G
- XXM1!%[,@0=8BG'WM71>Q!^I(Z7_H[9XCZ-`@`3VL)"QDX`D`1^FF3>Q&3?V9N0
- XXM?0:!BA"X,R5W(CQ=\14*LA^J0Y*M@VD="0`3VL)+GXWNTRC[`>3.8Q7OA#M3
- XXM(ERT-:9@HHXJ(V:CJ;+AEHWNTR@`D`1(E(K[[4-^Y(]DT`(%8?0QN6(TMA^J
- XXM0Y*M<VUNL`9[(@0=@EREMBQ@$@1G&J@9(5RT-:9@HCZ7;BO/TQQ7_B49'2Y=
- XXMWK@3N6O#@3$S@1&%>07QE8TTP5Y^-*$M3$I2-J$2LIM/X9``D`1^VDJ[(F7J
- XXMPZV1D08O4",N:1=.G`9ZD-IOI#[<.K3NTR@`H(Z1SA&(N)39LA`BXL@`D`0$
- XXMR1;A7/"<[A7(PVZ_)2&[^10."0""X`>*X`>4X`>NX`>^X`?6X`?@X`?ZX`<,
- XXM\`<>\`<N\`<Z\`=,\`=<\`=N\`=Z\`>0\`><\`>H\`>Z\`?)\`?9\`?H\`?Y
- XXM\`<-``@A``@X``A'``A6``AN``A[``B1``B@``BL``B_``C0``CI``CX``@(
- XX9$`@6$`@E$`@P$`@_$`A-$`AH$`A[$`@)`PB@
- XX`
- XXend
- XSHAR_EOF
- Xecho 'File ckermit is complete' &&
- Xecho 'uudecoding file ckermit' &&
- Xuudecode < _shar_tmp_.tmp && rm -f _shar_tmp_.tmp &&
- Xecho 'uncompressing file ckermit' &&
- Xcompress -d < _shar_cmp_.tmp > 'ckermit' && rm -f _shar_cmp_.tmp &&
- Xchmod 0755 ckermit ||
- Xecho 'restore of ckermit failed'
- XWc_c="`wc -c < 'ckermit'`"
- Xtest 91761 -eq "$Wc_c" ||
- X echo 'ckermit: original size 91761, current size' "$Wc_c"
- Xrm -f _shar_wnt_.tmp
- Xfi
- Xrm -f _shar_seq_.tmp
- Xecho You have unpacked the last part
- Xexit 0
- SHAR_EOF
- $TOUCH -am 1222012790 'ckermit/ckermit.03' &&
- chmod 0644 ckermit/ckermit.03 ||
- echo 'restore of ckermit/ckermit.03 failed'
- Wc_c="`wc -c < 'ckermit/ckermit.03'`"
- test 19216 -eq "$Wc_c" ||
- echo 'ckermit/ckermit.03: original size 19216, current size' "$Wc_c"
- # ============= doc/_basic.txt ==============
- if test ! -d 'doc'; then
- echo 'x - creating directory doc'
- mkdir 'doc'
- fi
- echo 'x - extracting doc/_basic.txt (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'doc/_basic.txt' &&
- X.*s 1 "Basic Organization"
- X
- XECU forks to run as two separate
- Xprocesses, a transmitter (XMTR) and a receiver (RCVR).
- XThe two processes
- Xcommunicate via signals and a System V shared memory segment.
- XXMTR controls RCVR and terminates it under certain circumstances,
- Xcalled here auxiliary operations. After an auxiliary operation
- Xcompletes, XMTR forks again to recreate RCVR.
- X
- X.*s 2 "Transmitter Process (XMTR)"
- X
- XXMTR
- Xaccepts user input from the computer keyboard; input is recognized
- Xas belonging to one of two types: 1) transmit data and 2)
- XECU commands. Keyboard input
- Xis passed to the serial line driver until an ECU command
- Xis detected. Commands are prefixed with a
- X.B HOME
- Xkey which causes ECU to accept keyboard data up to the next ENTER
- Xkey as command text. After a command has been processed,
- Xkeyed data is again routed to the serial line.
- X
- X.*s 3 "Keyboard Interface"
- X
- XThe keyboard driver is set into the raw mode.
- XXMTR reads characters one at a time from the driver.
- XNormally, characters read from the keyboard are passed directly to
- Xthe serial line driver. The
- XASCII ESC ("escape") character is handled as a special case.
- XWhen a function key is pressed, the keyboard generates
- Xto XMTR an ESC character,
- Xfollowed by more characters describing which function key has
- Xbeen pressed.
- XPressing the ESC key also causes XMTR to see an ESC character,
- Xbut with no subsequent function key "suffix".
- X
- XWhen an ESC character is read, XMTR delays transmission of the
- Xcharacter to the line for a short period to determine whether
- Xthe ESC key has been pressed or a function key has been pressed.
- XIf no "suffix" is detected, the ESC is passed to the line, having
- Xsuffered an insignificant delay given human typing speeds.
- X
- XIf a function key "suffix" is detected, the function key type
- Xis decoded. The
- X.B HOME
- Xkey indicates an ECU command follows. Any
- Xother function key is passed to the function key mapping feature
- X(described later).
- X
- X.*s 3 "ECU Command Assembly"
- X
- XAfter
- X.B HOME
- Xhas been pressed, XMTR presents a reverse video prompt on the
- Xdisplay, indicating its readiness to accept a command. During
- Xinput, the command may be edited using the same control keys
- Xspecified with stty(C). Additonal editing
- Xusing the left and right arrow keys and the
- XIns(ert) key are usually available.
- XCommand input may be aborted by pressing ESC.
- XWhen a command string has been assembled, it is passed to the
- Xcommand processor, which breaks the command arguments into a token
- Xarray similar to the argc/argv array. When the command handler
- Xreturns, XMTR returns to its normal mode of copying keyboard data to
- Xthe serial line.
- X
- XFurther information on XMTR command line processing may be found in
- Xlater sections titled Line Editing and Interactive Command History.
- X
- X.*s 3 "Function Key Mapping"
- X
- XWhile in tty-to-line mode, function keys other than
- X.B HOME
- Xare available to be mapped
- Xto transmit short keystroke sequences on a connection by
- Xconnection basis. Under control of the dialing command ("Dial"
- Xdescribed below) or the function key control command ("FK"),
- Xpredefined function key maps may be loaded.
- X
- XFunction keys which may be mapped are
- X.B F1
- Xthrough
- X.B F12 ,
- X.B PgUp ,
- X.B PgDn ,
- X.B End ,
- X.B Ins ,
- X.B Del ,
- Xand
- Xthe cursor control keys.
- X
- XThe unshifted keypad '5' key is permanently mapped to
- Xproduce a screen snapshot when it is pressed and XMTR is
- Xreading from the keyboard.
- X
- XThhe BackTab (shift Tab) key is mpermanently mapped to a screen
- Xredisplay feature.
- X
- X.*s 3 "Auxiliary Operation Control"
- X
- XCertain commands cause ECU to perform what is called an
- Xauxiliary operation, requiring temporary termination of the
- XRCVR process. Such operations are not as useful
- Xwith
- X.B cu(C) ,
- Xbecause cu does NOT kill its receiver process at any time.
- XAs a result, it impossible to run a modern file transfer
- Xprotocol since the cu receiver process eats some of the
- Xcharacters sent by the remote protocol program.
- X
- XThere are two types of auxiliary operations:
- X1) internal interactive command or procedure
- Xexecution and 2) external program execution.
- XCertain
- X.B internal
- X.B commands
- Xrequire tight control over the serial line.
- XFor instance, the
- X.B dial
- Xcommand requires transmitting modem command
- Xstrings and receiving modem response codes. Such functions
- Xare best accomplished by single-process control of the line.
- X.B External
- X.B program
- Xexecution is of two kinds, file transfer invocation
- Xand local shell/command execution.
- X
- XThe RCVR process is terminated in any of these cases either to
- Xavoid the RCVR swallowing characters intended for other
- Xtargets (the modem handler in XMTR or the file transfer protocol)
- Xor to avoid having remote data interspersed with the output of
- Xlocal programs.
- X
- X.*s 2 "Receiver Process (RCVR)"
- X
- XThe receiver process reads the incoming serial data stream and
- Xpasses it to the user terminal driver through a filter which
- Xscans for events such as the occurrence of ASCII BEL (bell)
- Xcharacters or terminal control sequences. RCVR also handles
- Xthe session logging and ANSI filter functions.
- X
- X.*s 3 "ANSI Filter"
- X
- XSince the term "ANSI" is used to describe
- X.B many
- Xvariations on the ANSI X3.64 recommendations for terminal control (read
- X"IBM pseudo-ANSI"), the ECU receiver process has an "ANSI filter" which
- Xattempts to translate incompatible (read "MSDOS") ANSI-like control
- Xsequences to sequences acceptable to the UNIX/XENIX display driver.
- XThis includes support for the MS-DOS "save cursor" and "restore cursor"
- Xsequences.
- XMore information may be found later in "Terminal Model."
- X
- X.*s 3 "Session Logging"
- X
- XWhen directed by the user, the RCVR process logs incoming serial
- Xdata to a file named on the log command line. The default operation
- Xis to filter unprintable characters (other than TAB and NL) from the
- Xlog, but raw logging is available with a command option. In a like
- Xmanner, the default is for appending to an existing file, but a
- Xcommand option may specify scratching any previous contents.
- X
- XLog files receive header lines each time the file is
- Xopened, stating the logical system name, the telephone number
- Xand the date/time.
- X
- SHAR_EOF
- $TOUCH -am 1221210990 'doc/_basic.txt' &&
- chmod 0644 doc/_basic.txt ||
- echo 'restore of doc/_basic.txt failed'
- Wc_c="`wc -c < 'doc/_basic.txt'`"
- test 6049 -eq "$Wc_c" ||
- echo 'doc/_basic.txt: original size 6049, current size' "$Wc_c"
- # ============= doc/_end.txt ==============
- echo 'x - extracting doc/_end.txt (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'doc/_end.txt' &&
- X
- X.br
- X.nr si 0n
- X.af % i
- X.ls 1
- X.TC 1 1 3
- SHAR_EOF
- $TOUCH -am 0711174289 'doc/_end.txt' &&
- chmod 0644 doc/_end.txt ||
- echo 'restore of doc/_end.txt failed'
- Wc_c="`wc -c < 'doc/_end.txt'`"
- test 39 -eq "$Wc_c" ||
- echo 'doc/_end.txt: original size 39, current size' "$Wc_c"
- # ============= doc/_exit.txt ==============
- echo 'x - extracting doc/_exit.txt (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'doc/_exit.txt' &&
- X.*s 1 "Exit Codes"
- X
- XWhen ECU exits (terminates execution),
- Xit uses a code from the following table:
- X.DS L
- XOK 0 no error
- XSIG1 1 SIGHUP (signal 1)
- XSIGN 64 signal 64 - see below
- XLINE_READ_ERROR 129 could not read from attached line
- XXMTR_WRITE_ERROR 130 could not write to attached line
- XXMTR_LOGIC_ERROR 131 software logic error
- XBSD4_IOCTL 132 not currently used
- XSHM_ABL 133 not currently used
- XSHM_RTL 134 not currently used
- XNO_FORK_FOR_RCVR 135 could not fork receiver process
- XTTYIN_READ_ERROR 136 could not read from console
- XLINE_OPEN_ERROR 137 could not attach (open) requested line
- XPWENT_ERROR 138 error in /etc/passwd processing
- XUSAGE 139 command line syntax error
- XCONFIG_ERROR 140 missing or erroroenous configuration file
- XINIT_PROC_ERROR 192 initial procedure terminated in error
- XUSER1 193 'exit' procedure command called with 1
- XUSERN 223 'exit' procedure command called with 31
- X.DE
- X
- XThe logical names 'SIG1' and 'SIGN' refer to a range of error codes
- Xsignifying ecu termination due to a signal. A larger range (64) is
- Xreserved than is necessary to handle reasonable expansion of
- XSIG values in the OS. Not all signals will be reported
- Xin this manner. ECU will never report status 10 (signal 9, SIGKILL),
- Xfor instance.
- X
- XThe logical names 'USER1' and 'USERN' refer to a range of error
- Xexits codes reserved for use by the 'exit' procedure command.
- XSee the description of this command for more information.
- X
- XFor ecu friend code,
- Xformal C #define identifiers for exit codes may be found in
- Xecuhangup.h and consist of the above logical names prefixed with 'HANGUP_'.
- SHAR_EOF
- $TOUCH -am 1203150290 'doc/_exit.txt' &&
- chmod 0644 doc/_exit.txt ||
- echo 'restore of doc/_exit.txt failed'
- Wc_c="`wc -c < 'doc/_exit.txt'`"
- test 1767 -eq "$Wc_c" ||
- echo 'doc/_exit.txt: original size 1767, current size' "$Wc_c"
- # ============= doc/_features.txt ==============
- echo 'x - extracting doc/_features.txt (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'doc/_features.txt' &&
- X.*s 2 "Supported Terminals"
- X
- XECU does not attempt to support terminal emulation in the classic
- Xsense of the word. It presents to the remote host an "ANSI-like"
- Xterminal type as described earlier in the introduction and in
- Xthe section titled "ANSI Filter."
- XHowever, it does support, with limitations, any LOCAL terminal
- X(console) for which a valid termcap description exists. You MAY
- Xbe able to use ECU with a remote terminal (calling into UNIX/XENIX
- Xover a network or modem), but you may get unfavorable results with
- Xfunction key usage if your modem is a "packetizing" type, such as
- Xa Telebit or if ethernet or other networking chops up your keystroke
- Xsequences. ECU allows approximately 60 milliseconds after receiving
- Xan ASCII ESC character for later characters of a function key sequence
- Xto arrive. If at least one character of the sequence has not been
- Xreceived in that time, ECU treats the key as an ESCape, not a function key.
- XThis typical problem of detecting ESC vs. function key is unfortunate, but
- Xwe must live with it until paradigms change (say, in about 2010?).
- X
- XThe termcap entry for a console
- XMUST contain a valid entry for the following database entries:
- X
- X.DS L
- Xcl clear screen
- Xkl cursor left
- Xkr cursor right
- Xdc delete character
- Xdl delete line
- Xcd clear to end of display
- Xce clear to end of line
- Xic insert character
- Xal insert line ("add" a "line")
- Xcm cursor motion
- Xso stand out (terminal specific attention getter)
- Xse stand end
- X.DE
- X
- XThe above sequences MUST be present, valid and reasonably efficient.
- XECU does not use curses during most of it's operation, and unlike
- Xcurses, makes no attempt to emulate missing terminal functionality.
- XFailure to provide valid entries will result in
- Xstrange behavior with no warning.
- X
- XNote that the formal termcap description of "kl" and "kr"
- Xstate these are sequences generated by the terminal
- X.B keyboard ,
- Xbut ECU expects that these sequences also causes the desired
- Xeffect when
- X.B sent
- Xto the
- X.B screen .
- X
- XAdditionally, the following, optional, sequences will be used if
- Xthey are detected.
- X
- X.DS L
- Xmb bold on ("XENIX" extension)
- Xme bold off ("XENIX" extension)
- Xus underscrore on
- Xue underscrore off
- Xvb visual bell
- X.DE
- X
- XA future version of ECU may use terminfo instead of termcap.
- XProblems with terminfo prevent its use at the present time.
- XIn addition, early versions of XENIX do not support terminfo.
- X
- X.*s 2 "Function Key Recognition"
- X
- XECU recognizes 23 function keys as having special significance
- Xto its operation. They are (with their AT/"ANSI" character sequences):
- X.DS I
- XInternal Description AT/"ANSI" Char-
- XName or Key Label acter Sequence
- X-------- ------------ ---------------
- XF1 F1 ESC [ M
- XF2 F2 ESC [ N
- XF3 F3 ESC [ O
- XF4 F4 ESC [ P
- XF5 F5 ESC [ Q
- XF6 F6 ESC [ R
- XF7 F7 ESC [ S
- XF8 F8 ESC [ T
- XF9 F9 ESC [ U
- XF10 F10 ESC [ V
- XF11 F11 ESC [ W
- XF12 F12 ESC [ X
- XHome Home ESC [ H
- XEnd End ESC [ F
- XPgUp Page up ESC [ I
- XPgDn Page down ESC [ G
- XCUU Up arrow ESC [ A
- XCUD Down arrow ESC [ B
- XCUL Left arrow ESC [ D
- XCUR Right arrow ESC [ C
- XCU5 "Cursor 5" ESC [ E
- XIns Insert ESC [ L
- XBkTab Back Tab ESC [ Z
- X.DE
- X
- XECU recognizes function keys entered by the user in
- Xone of two ways, depending upon whether the terminal is
- Xrecognized as an "ANSI" or "non-ANSI" terminal (see "Supported Terminals"
- Xabove).
- X
- XIf an AT/"ANSI" terminal is in use, ECU expects the standard AT/"ANSI" sequences
- Xto be generated by the keyboard according to the above table.
- XThis means that no use of the setkey(C) program (or similar functionality)
- Xmay be active.
- X
- XIf an "non-ANSI" terminal is in use, ECU matches a function key sequence
- Xto an internal function key representation
- Xby testing all keystroke sequences again an internal table loaded
- Xat the beginning of execution from the file ~/.ecu/nonansikeys.
- XNOTE that supported terminals MUST employ function keys which generate
- Xsequences beginning with an ASCII ESC (escape, 0x1B, decimal 27, octal 33).
- X
- XThe format of an file entry is shown below in the 'ansilike' example (used
- Xto test ECU from the console by defining an 'ansi' terminal type
- Xnevertheless equivalent to 'ansi').
- X
- XLines beginning with '#' are comments.
- X
- X.DS I
- X#+------------------------------
- X# ECU 3.0 nonansikeys
- X#-------------------------------
- Xansilike
- Xansi
- Xmsdos
- Xdos
- Xdosansi
- Xtest
- X F1:F1: esc [ M
- X F2:F2: esc [ N
- X F3:F3: esc [ O
- X F4:F4: esc [ P
- X F5:F5: esc [ Q
- X F6:F6: esc [ R
- X F7:F7: esc [ S
- X F8:F8: esc [ T
- X F9:F9: esc [ U
- X F10:F10: esc [ V
- X F11:F11: esc [ W
- X F12:F12: esc [ X
- X Home:Home: esc [ H
- X End:End: esc [ F
- X PgUp:PgUp: esc [ I
- X PgDn:PgDn: esc [ G
- X CUU:CUU: esc [ A
- X CUL:CUL: esc [ D
- X CU5:CU5: esc [ E
- X CUR:CUR: esc [ C
- X CUD:CUD: esc [ B
- X Ins:Ins: esc [ L
- X BkTab:BackTab: esc [ Z
- X.DE
- X
- XThe first line(s) in a terminal keyboard description begin in
- Xcolumn 1 and contain the terminal types (a la $TERM) for which
- Xthe keyboard description are valid. The example entry contains
- Xseveral references to terminal types containing the substring
- X'ansi'. These are included only as an example of one keyboard
- Xdescription servicing multiple terminal types.
- X
- XECU determines whether a terminal meets the ansi vs. ANSI
- Xdistinction by searching for 'ansi' in the $TERM environment
- Xvariable (without regard to case: 'AnSi' will match as well as
- X'ansi'). If your keyboard matches the ANSI specification even
- Xthough your $TERM environment variable does not contain 'ansi'
- X(such as 'sun'), then you may add the terminal type to the 'ansilike'
- Xentry rather than create a separate entry.
- X
- XFollowing the "first lines" are key definition entries, each
- Xpreceded by at least one tab or space. Each entry is composed of
- Xthree fields delimited by commas. The first field of an entry is
- Xthe internal ECU function key name and must be chosen from the
- Xfollowing strings (with no regard to case): "F1", "F2", "F3",
- X"F4", "F5", "F6", "F7", "F8", "F9", "F10", "F11", "F12", "Home",
- X"End", "PgUp", "PgDn", "CUU" (cursor up), "CUL" (cursor left),
- X"CU5" (unshifted cursor pad 5), "CUR" (cursor right) and "CUD"
- X(cursor down). The
- Xsecond field contains the name of the key as it appears on the
- Xnon-ANSI keyboard (such as "F16" for End on the Wyse 60). The
- Xthird field is a description of the character sequence generated
- Xby the non-ANSI keyboard when the chosen key is pressed; it is a
- Xstring of one or more tokens separated by spaces or tabs.
- X
- XNote that while ECU requires a function key sequence to begin with
- Xan ASCII ESC (escape), each table entry must contain
- Xan 'esc' as it's first sequence token. This seemingly
- Xsuperfluous requirement ensures compatibility
- Xwith possible future support for function keys which do not
- Xbegin with ESC.
- X
- XIn addition, function key sequences may not contain the NUL (0)
- Xcharacter, nor may they exceed 10 characters, including the leading ESC.
- X
- XThe tokens are described in full in the following sections titled
- X"Function Key Recognition" and "Function Key Mapping."
- X
- XPLEASE NOTE: ECU does not have a reasonable way for you to terminate
- Xit if there are no Home and End keys defined, so it refuses to proceed
- Xif no definitions are found. Even so, if you have incorrect definitions,
- Xyou may not be able to get out of ECU without a kill -1 <pid> from
- Xanother terminal or hanging up your connection with UNIX/XENIX
- Xif using ECU from remote.
- X
- X.*s 2 "Function Key Mapping"
- X
- XECU recognizes function keys in a manner described in the above
- Xsection titled "Function Key Recognition."
- XThis section deals with how ECU behaves
- Xonce a function key has been recognized as having been entered
- Xat the keyboard.
- X
- XAll function keys with the exception of the
- X.B Home ,
- X.B BkTab
- X(shift TAB),
- Xand keypad unshifted 5 key can be programmed to emit selected strings.
- XFor instance, when communicating with a Stratus computer,
- Xdoing your best to emulate a VT100, a function key
- Xmap might be constructed as follows:
- X.DS L
- X F1 F1 F2 F2 Home ecu cmd PgUp dispform
- X F3 F3 F4 F4 End enter PgDn cancel
- X F5 F5 F6 F6 Ins local shell CUR5 Screen dump
- X F7 status F8 no status BkTab restore receiver display
- X F9 F10 redisp CUR^ ^ CUR> >
- X F11 F12 CUR< < CURv v
- X.DE
- X
- XFunction key mapping is placed in ~/.ecu/keys. The Stratus example:
- X.DS L
- Xstratus
- X F1:F1:esc O q
- X F2:F2:esc O r
- X F3:F3:esc O s
- X F4:F4:esc O t
- X F5:F5:esc O u
- X F6:F6:esc O v
- X F7:F7:esc O w
- X F8:status:dc4
- X F9:no status:nl
- X F10:redisp:esc O y
- X F11:redisp:syn
- X PGDN:cancel:esc O Q
- X END:enter:esc O M
- X PGUP:dispform:esc O R
- X CUU:^:dle
- X CUD:v:so
- X CUL:<:stx
- X CUR:>:ack
- X.DE
- X
- XIf you have installed the mapkey file (as described in the release directory
- Xin mapkeys/README), then ALT-a through ALT-z causes the "silent"
- Xexecution of procedures 'alt_a.ep' for ALT-a, 'alt_b.ep' for ALT-b, etc.
- XThe models subdirectory contains an example alt_h.ep which will home
- Xthe cursor when ALT-h is pressed. This facility allows the execution
- Xof 26 procedures without ECU itself changing the video display at all.
- XAny changes to the display (short of procedure errors) will result
- Xsolely from the action of the invoked procedure.
- XIf the procedure matching the ALT-[a-z] key pressed cannot be found,
- Xa short error message is printed and the terminal bell is rung.
- X(Using back tab may be used to refresh the display in this event.)
- X
- XThe strings used to represent "non-printable" characters are identical
- Xto the formal ASCII names given them (without regard to case), viz:
- X.DS I
- X0x00 nul NUL may not appear in a non-ANSI
- X0x01 soh function key definition
- X0x02 stx
- X0x03 etx
- X0x04 eot
- X0x05 enq
- X0x06 ack
- X0x07 bel
- X0x08 bs
- X0x09 ht
- X0x0A nl
- X0x0B vt
- X0x0C np
- X0x0D cr
- X0x0E so
- X0x0F si
- X0x10 dle
- X0x11 dc1
- X0x12 dc2
- X0x13 dc3
- X0x14 dc4
- X0x15 nak
- X0x16 syn
- X0x17 etb
- X0x18 can
- X0x19 em
- X0x1A sub
- X0x1B esc
- X0x1C fs
- X0x1D gs
- X0x1E rs
- X0x1F us
- X0x20 sp
- X0x7F del
- X.DE
- X
- X.*s 2 "Host Video Control Sequences"
- X
- X.*s 3 "All Local Terminals"
- X
- XThe following sequences are recieved over the line
- Xby ECU and properly interpreted for all local terminal types
- X(multiscreen, rlogin/xterm pseudotty, serial).
- X
- X.DS L
- XSequence | Description
- X----------+-------------------------------
- XESC [ @ | ICH
- XESC [ A | CUU
- XESC [ B | CUD
- XESC [ C | CUF
- XESC [ D | CUB
- XESC [ E | CNL See ANSI X3.64,
- XESC [ F | CPL screen(HW) and/or
- XESC [ H | CUP MS-DOS Technical
- XESC [ J | ED Reference Manual
- XESC [ K | EL
- XESC [ L | IL
- XESC [ M | DL
- XESC [ P | DCH
- XESC [ S | SU
- XESC [ T | SD
- XESC [ X | ECH
- XESC [ ` | HPA
- XESC [ a | HPR
- XESC [ d | VPA
- XESC [ e | VPR
- XESC [ f | HVP
- XESC [ ? m | SGR
- XESC [ n | DSR (see below)
- XESC [ s | save cursor MS-DOSism
- XESC [ u | restore cursor MS-DOSism
- X.DE
- X.DS L
- XSGR Sequences for ALL TERMINALS
- XSequence | Description | Maps to termcap
- X----------+---------------+-------------------------------
- XESC [ 0 m | normal | "se"+"me"+"ue"
- XESC [ 1 m | bold | "so"
- XESC [ 4 m | underscore | "us"
- XESC [ 5 m | blink | "mb" (XENIX extension)
- XESC [ 7 m | reverse video | "so"
- X.DE
- X
- X.*s 3 "Multiscreen Local Terminals"
- X
- XIn addition to the above, if you are operating from a color
- Xmultiscreen, additional (SCO and MS-DOS/ANSI.SYS) sequences
- Xare supported (see screen(HW)):
- X
- X.DS L
- XAdditional Multiscreen SGR Sequences
- XSequence | Description (no termcap mapping)
- X------------+-----------------------------------------------
- XESC [ 8 m | non-display
- XESC [ 1 0 m | select primary font
- XESC [ 1 1 m | select first alternate font (0x00-0x1F)
- XESC [ 1 2 m | select second alternate font (0x80-0xFF)
- XESC [ 3 0 m | black foreground
- XESC [ 3 1 m | red foreground
- XESC [ 3 2 m | green foreground
- XESC [ 3 3 m | brown foreground
- XESC [ 3 4 m | blue foreground
- XESC [ 3 5 m | magenta foreground
- XESC [ 3 6 m | cyan foreground
- XESC [ 3 7 m | white foreground
- XESC [ 3 8 m | enables underline option
- XESC [ 3 9 m | disables underline option
- XESC [ 4 0 m | black background
- XESC [ 4 1 m | red background
- XESC [ 4 2 m | green background
- XESC [ 4 3 m | brown background
- XESC [ 4 4 m | blue background
- XESC [ 4 5 m | magenta background
- XESC [ 4 6 m | cyan background
- XESC [ 4 7 m | white background
- X.DE
- X
- X.s 3 "MS-DOS 'SGR Gaggles'"
- X
- XECU also does it's best to interpret MS-DOS "SGR gaggles" such as
- X.DS I
- XESC [ 5 ; 3 4 ; 4 7 m
- X.DE
- Xwhich means "set the terminal to white background with
- Xblue blinking foreground."
- X
- X.*s 3 "Character Mapping"
- X
- XThe MS-DOS ROM signal ruling
- Xcharacters from the following table are mapped after the fashion of:
- X
- X.DS L
- X .-----+--------.
- X | | |
- X | +--------+
- X | | |
- X +-----+ |
- X | | |
- X `-----+--------'
- X.DE
- X.DS L
- XMapped Characters (see pc_scr.h):
- XHex | Description
- X-----+---------------------------
- X0xDA | top left single rule
- X0xBF | top right single rule
- X0xC0 | bottom left single rule
- X0xD9 | bottom right single rule
- X0xC3 | left hand T
- X0xB4 | right hand T
- X0xB3 | vertical rule
- X0xC4 | horizontal rule
- X.DE
- X
- X(Due to momentary laziness on the part of the author, double
- Xruling characters will appear as random druk, unless your terminal
- Xis smart enough to have joined the Church of the True-Blue ROM.
- XOne day an X version of this program will appear and you can choose
- Xto no longer accomplish real work, but may spend your days editing
- X42Kb resource files which will give you TAC, Total Anal Control,
- Xover all this.)
- X
- X.*s 2 "Line Editing"
- X
- XWhen you are entering a line of text for an ecu command or in
- Xa field on a screen, you may edit it in a number of ways at any
- Xtime prior to pressing Enter. Cursor Left moves the cursofr left
- Xby one character position, nondestructively. Cursor Right moves
- Xto the right. Insert toggles insert mode. Backspace (your
- Xerase key as specified to stty in commands, the actual backspace key
- Xin screens) deletes the character to the left of the cursor.
- XYour line kill key (as specified to stty) in command mode or
- Xthe ^U character in screen mode erases the entire line. Esc
- Xin command mode cancels the command. Esc in screen mode usually
- Xcancels the screen or subfunction in a screen. ^L or ^R in
- Xinteractive command mode shows the current state of Insert mode and
- Xredisplays the edited string.
- X
- X.*s 2 "Screen Dump"
- X
- XWhen the "cursor 5" key is pressed, the screen contents are
- Xdumped to a file. By default, this file is named '~/.ecu/screen.dump'.
- XThe
- X.B sdname
- Xinteractive command either displays or changes the current screen
- Xdump file name, depending upon whether or not a argument
- Xis supplied.
- XThe
- X.B scrdump
- Xprocedure command can initiate a dump.
- X
- X.*s 3 "Multiscreen and Non-Multiscreen"
- XNote that from multiscreens, screen dump produces a dump of the
- Xactual screen contents, including ECU-generated output. When
- Xusing a non-multiscreen terminal, screen dump dumps only the
- Xshared memory virtual screen as received from the host.
- XIf standard input is not a serial line (xterm o or /dev/null),
- Xscreen dumps will be of the non-multiscreen type.
- X
- XIf, at a multiscreen, you wish a screen dump free of ECU output
- X"pollution," use Shift-Tab (BkTab) to redraw the screen, then
- Xperform the screen dump.
- X
- X.*s 3 "Multiscreen Bug"
- XThere has been a bug in the multiscreen driver for some time
- Xwherein a MEDIA COPY (screen dump) sequence ("ESC [ 2 i") leaves
- Xthe "ESC [ 2" part "active". When a screen dump (Cursor 5)
- Xcommand is given, I do the sacreen dump, then send a "l" to the
- Xscreen to work around the bug ("ESC 2 [ l" unlocks the keyboard,
- Xessentially a no-op). If and when it gets fixed, you'll see an
- X"l" show up on your screen after a screen dump sequence. To fix
- Xthis, comment out the
- X.DS I
- X#define MULTISCREEN_DUMP_BUG
- X.DE
- Xat the top of ecuscrdump.c.
- X
- X.*s 2 "Interactive Command History"
- X
- XAfter pressing the Home key, pressing it again invokes the
- Xinteractive command history function. After the second
- XHome key is pressed, the last interactive command is
- Xredisplayed. Line editing may be performed on the command as described
- Xin the previous section.
- X
- XAdditionally, using the Cursor Up key accesses less recent commands.
- XThe Cursor Down key accesses more recent commands. Pressing Enter causes
- Xthe command to be executed. Pressing Esc aborts command entry.
- X
- X.*s 2 "Dialing Directory"
- X
- XECU provides an on-line editable dialing directory. Remote
- Xsystems are defined as records using alphanumeric identifiers
- Xas keys. Other record fields include telephone number, baud
- Xrate, parity and textual description.
- X
- XOther features include changing to alternate dialing directory
- Xand a multi-number redial cycle function. Refer below to the description
- Xof the interactive
- X.B dial
- Xcommand.
- X
- X.*s 2 "Online Command Dictionary"
- X
- XThe ECU help command presents a display of interactive commands. The user
- Xis then prompted to enter a command name for further, Unix-style
- X"usage" information.
- X
- X.*s 2 "Multiscreen Event Alarm"
- X
- XBy using the
- X.B BN
- X(bell notify) interactive command, an audible alert is sent to all
- Xmultiscreens when an ASCII BEL (bell) is received or when a file
- Xtransfer completes. An additional option causes an alert when ANY
- Xdata is received from the line. This makes it simple to do work on
- Xother multiscreen consoles and be alerted when attention to the
- Xcommunications session is required.
- X
- XFor instance, the Berkeley 4.x Unix utility "talk" rings the bell when
- Xanother user wishes an interactive chat mode. BSD "biff" rings the bell
- Xwhen incoming mail is received. Scripts or commands at remote sites can
- Xbe configured to ring the bell as in:
- X.DS I
- Xmake foo bar; bell; make more_stuff; bell;
- X.DE
- Xto call attention to the ECU user when work is being done
- Xon other multiscreen consoles.
- X
- XThis feature is only available when you are running ECU from a multiscreen.
- X
- X.*s 2 "Built-in Modem Dialer"
- X
- XThe built-in ECU dialer supports modems which use the
- X.B
- XHayes-style AT command set or most variants
- X.R
- X.B thereof .
- XIt is used when HoneyDanBer UUCP is not installed or when there is no
- Xentry in the /usr/lib/uucp/Devices file for the selected outgoing line.
- X(For more information, see the later section titled "HoneyDanBer UUCP
- XInterface".)
- X
- XThe built-in dialer uses files in the /usr/lib/ecu directory which
- Xcontains modem initialization information. Modem initialization
- Xfilenames are made from concatenating the tty name with ".mi". For
- Xinstance, tty1a's initialization file is named "tty1a.mi".
- X
- XCommands for initializing the modem and for dialing may be specified in
- Xa very flexible manner. Separate init and dial strings for each legal
- Xbaud rate, a single pair of strings for all baud rates or a combination
- Xmay be specified.
- X.DF L
- X.hl
- X.ce 1
- XSample Modem Initialization Files
- X
- X#+-----------------------------------------------------------
- X# tty1a.mi - Microcom AX/9624c
- X#------------------------------------------------------------
- Xinit_>2400:ATS11=47X4S0=0S7=30\Q1\X1\N3 # baud rates > 2400
- Xinit_default:ATS11=47X4S0=0S7=30\Q0\X0\N0 # other baud rates
- Xdial_default:ATDT
- X
- X
- X#+-----------------------------------------------------------
- X# tty2d.mi - USR Courier 2400
- X#------------------------------------------------------------
- Xinit_default:ATS11=47 X4 S0=0 S7=32
- Xdial_default:ATDT
- X
- X.DE
- X
- X.*s 2 "File Transfer"
- X
- XECU supports numerous file transfer protocols: as of this writing,
- XXMODEM, XMODEM/CRC, XMODEM-1K, YMODEM/CRC Batch, ZMODEM/CRC-16,
- XZMODEM/CRC-32, and Kermit are supported. Although a seamless interface
- X(there's some yuppie marketing newspeak) is provided to the user,
- Xtransfer is facilitated by executing external programs.
- X
- XAs of this writing SEAlink is not in the best of health (no one
- Xhas complained :-).
- X
- XKermit support required you to obtain and patch C-Kermit 4E.
- XThe patch information is available in the ckermit subdirectory
- Xof the release. As soon as C-Kermit 5 is stable and released by
- XColumbia, a suitable patch will be developed for it. It
- Xis quite possible no patching will be necessary.
- X
- XXMODEM, YMODEM and ZMODEM transfers (thanks to modified public domain
- Xprograms by Chuck Forsberg) present dynamic status displays similar to
- Xthe following:
- X.DS L
- X .-[ ecusz 2.37 ]-- /tmp -----------------------------------.
- X | ZMODEM/CRC32 Data xfer rate ~= 896 chars/sec |
- X | File 1 of 1: ckermit-5a-130 |
- X | File position: 34053 length: 34053 -rw-r--r-- |
- X | Sending 34053 bytes total time ~= 0:40 |
- X | tx: hdr ZFIN 0 rx: hdr ZFIN 0 |
- X | Comm I/O: rx 175 tx 34393 bytes |
- X | Baud rate: 9600 BINARY blklen: 1024 comm mode: NORMAL |
- X | Time: started: 17:31:50 this file: 17:31:51 |
- X | 17:32:29 elapsed: 00:00:39 00:00:38 |
- X | Errors: this file: 0 total: 0 files skipped: 0 |
- X | Total file bytes transferred: 34053 |
- X | End of file |
- X | Remote: CRC32 y duplex y continuous stream y |
- X `- Connected to ki4xo - procedure put_ck5a ----------------'
- X.DE
- X
- X.*s 2 "Procedures (Scripts)"
- X
- XA powerful, language-style procedure language is incorporated
- Xinto ECU. The language is described in later sections.
- X
- X.*s 2 "Initial (Startup) Procedure"
- X
- XAn
- X.B
- Xinitial procedure
- X.R
- Xmay be be specified to ECU either to initialize an interactive
- Xsession or to execute an entirely unattended or "batch"
- Xcommunication session.
- X
- X
- X.*s 2 "Home Directory Files"
- X
- XECU control files reside in the .ecu subdirectory of
- Xeach user's home directory. For example, in home directory /usr/wht:
- X.DS I
- X/usr/wht/.ecu/dir CD interactive command history file
- X/usr/wht/.ecu/keys function key mapping
- X/usr/wht/.ecu/nonansikeys function key mapping
- X/usr/wht/.ecu/log connect, file transfer history
- X/usr/wht/.ecu/phone default dialing directory
- X/usr/wht/.ecu/colors colors used by ECU
- X.DE
- X
- XThe .ecu directory is also searched for ECU procedure files
- X(having the '.ep' extension) in the procedure cannot be found in
- Xthe current working directory.
- X
- X.*s 2 "Lock Files"
- X
- XECU maintains lock files in /usr/spool/uucp in accordance with the
- XHoneyDanBer UUCP conventions (ASCII pids as 10-character strings
- Xfollowed by a newline). Lock files are created for the lower-case
- Xdevice names of
- Xa line and checked for in both cases.
- XFor example, both LCK..tty1a is created when
- X/dev/tty1a OR /dev/tty1A is selected and neither LCK..tty1a nor
- XLCK..tty1A are active. See the later section titled
- X"HoneyDanBer UUCP Interface".
- X
- X.*s 2 "Dial-In/Dial-Out Line Support"
- X
- XECU works with the SCO getty to support dialing out on a line
- Xenabled for login. After use of the line is complete,
- XECU signals the system to restore incoming call status to
- Xthe line.
- XSee the later section titled "HoneyDanBer UUCP Interface".
- X
- X.*s 2 "Tools"
- X
- XCommands are provided for conversion of hexadecimal or decimal numbers
- Xto and from ASCII equivalents. For example, 26(10) == 0x1a == ^Z == SUB.
- XFor details, refer to the description of the
- X.B XA
- Xand
- X.B AX
- Xinteractive commands.
- X
- X.*s 2 "Shared Memory 'Friend' Interface"
- X
- XECU maintains a copy of the received screen image (80 x 43
- Xmaximum) and other
- Xinformation in its shared memory segment. Normally, this
- Xinformation is used only by the transmitter and receiver
- Xprocess. However, ECU supports the concept of a
- X.B friend
- Xprocess which may access the shared memory segment, perform
- Xarbitrary auxiliary operations, read from and write to the
- Xattached communications line and communicate resulting information
- Xor status to an ECU procedure via a 1024-byte "friend"
- Xdata area in the shared memory segment.
- X
- XThe procedure language supports the friend
- Xprocess concept through commands and functions which allow
- X.BL
- X.LI
- Xpassing the ECU shared memory segment id (%shmid) to a called
- Xprogram,
- X.LI
- Xreading a single character or string of characters from
- Xscreen memory,
- X.LI
- Xreading cursor position information and
- X.LI
- Xreading and writing of characters, short or long integers and
- Xstrings in the 1024-byte "friend" shared memory data area.
- X.LE
- X
- XThe algorithm for obtaining the shared memory segment key is
- X.DS L
- X0xEC000000L + transmitter process id
- X.DE
- XThus a "friend" process may either use a %shmid
- X.B
- Xshared memory key
- X.R
- Xpassed as an argument or obtain the
- X.B
- Xshared memory key
- X.R
- Xby using:
- X.DS L
- Xkey_t shmkey = 0xEC000000L | getppid();
- X.DE
- X
- XThis facility allows batch and interactive applications
- Xto be developed with C programs which would be
- Xtedious or impractical to implement with procedure language alone.
- X
- XFor more information, refer to the shared memory header file
- X.B ecushm.h ,
- Xthe
- X.B ecufriend
- Xsubdirectory of the software release
- Xand to the description of the
- X.B %shmid ,
- X.B %cury
- Xand
- X.B %curx
- Xprocedure functions
- Xand the
- X.B getf
- Xand
- X.B putf
- Xprocedure commands.
- SHAR_EOF
- $TOUCH -am 1221234090 'doc/_features.txt' &&
- chmod 0644 doc/_features.txt ||
- echo 'restore of doc/_features.txt failed'
- Wc_c="`wc -c < 'doc/_features.txt'`"
- test 25444 -eq "$Wc_c" ||
- echo 'doc/_features.txt: original size 25444, current size' "$Wc_c"
- true || echo 'restore of doc/_hdb.txt failed'
- echo End of part 31, continue with part 32
- exit 0
- --------------------------------------------------------------------
- Warren Tucker, TuckerWare emory!n4hgf!wht or wht@n4hgf.Mt-Park.GA.US
- Hacker Extraordinaire d' async PADs, pods, proteins and protocols
-
- exit 0 # Just in case...
- --
- Kent Landfield INTERNET: kent@sparky.IMD.Sterling.COM
- Sterling Software, IMD UUCP: uunet!sparky!kent
- Phone: (402) 291-8300 FAX: (402) 291-4362
- Please send comp.sources.misc-related mail to kent@uunet.uu.net.
-